home *** CD-ROM | disk | FTP | other *** search
- #
- # Playground model.
- #
- # Gershon Elber, December 1993
- #
-
- #
- # A chair base, to be used by most games below.
- #
- ChairBaseCrv = cbspline( 3,
- list( ctlpt( E3, 0.6, 0.0, 0.0 ),
- ctlpt( E3, 0.3, 0.0, 0.05 ),
- ctlpt( E3, 0.0, 0.0, 0.0 ) ),
- list( KV_OPEN ) );
- ChairBaseCross = arc( vector( 0.25, 0.05, 0.0 ),
- vector( 0.25, 0.0, 0.0 ),
- vector( 0.3, 0.0, 0.0 ) ) +
- arc( vector( 0.3, 0.0, 0.0 ),
- vector( 0.25, 0.0, 0.0 ),
- vector( 0.25, -0.05, 0.0 ) ) +
- cbspline( 3,
- list( ctlpt( E3, 0.25, -0.05, 0.0 ),
- ctlpt( E3, 0.22, -0.05, 0.0 ),
- ctlpt( E3, 0.0, 0.0, 0.0 ),
- ctlpt( E3, -0.22, -0.05, 0.0 ),
- ctlpt( E3, -0.25, -0.05, 0.0 ) ),
- list( KV_OPEN ) ) +
- arc( vector( -0.25, -0.05, 0.0 ),
- vector( -0.25, 0.0, 0.0 ),
- vector( -0.3, 0.0, 0.0 ) ) +
- arc( vector( -0.3, 0.0, 0.0 ),
- vector( -0.25, 0.0, 0.0 ),
- vector( -0.25, 0.05, 0.0 ) ) +
- ctlpt( E3, 0.25, 0.05, 0.0 );
- ChairBaseMain = sweepSrf( ChairBaseCross * rotz( 90 ), ChairBaseCrv, off );
-
- ChairCrv1 = cmesh( ChairBaseMain, ROW, 0 );
- ChairCrv1a = ChairCrv1 * trans( vector( 0.06, 0.0, -0.02 ) );
- ChairCrv1b = ChairCrv1 * scale( vector( 0.0, 0.83, 0.0 ) ) *
- trans( vector( 0.66, 0.0, -0.02 ) );
- ChairBaseCover1 = sFromCrvs( list( ChairCrv1, ChairCrv1a, ChairCrv1b ), 3 );
-
- ChairCrv2 = cmesh( ChairBaseMain, ROW, 2 );
- ChairCrv2a = ChairCrv2 * trans( vector( -0.06, 0.0, -0.02 ) );
- ChairCrv2b = ChairCrv2 * scale( vector( 0.0, 0.83, 0.0 ) ) *
- trans( vector( -0.06, 0.0, -0.02 ) );
- ChairBaseCover2 = sFromCrvs( list( ChairCrv2, ChairCrv2a, ChairCrv2b ), 3 );
-
- ChairBase = list( ChairBaseMain, ChairBaseCover1, ChairBaseCover2 ) *
- scale( vector( 0.75, 1.0, 1.0 ) );
- color( ChairBase, yellow );
- attrib( ChairBase, "texture", "wood" );
- attrib( ChairBase, "rgb", "244,164,96" );
-
- #
- # A full free form chair (same as in dinner.irt).
- #
- ChairSwpCrv = cbspline( 3,
- list( ctlpt( E3, 0.6, 0.0, 0.5 ),
- ctlpt( E3, 0.3, 0.0, 0.6 ),
- ctlpt( E3, 0.0, 0.0, 0.5 ),
- ctlpt( E3, -0.1, 0.0, 0.5 ),
- ctlpt( E3, -0.1, 0.0, 0.6 ),
- ctlpt( E3, 0.0, 0.0, 0.9 ),
- ctlpt( E3, -0.1, 0.0, 1.2 ) ),
- list( KV_OPEN ) );
- ChairSwpCrv = crefine( ChairSwpCrv, false,
- list( 0.01, 0.1, 0.2, 0.3, 4.7, 4.8, 4.9, 4.99 ) );
-
- ChairCoverMain = sweepSrf( ChairBaseCross, ChairSwpCrv, off );
- color( ChairCoverMain, yellow );
- attrib( ChairCoverMain, "texture", "wood" );
- attrib( ChairCoverMain, "rgb", "244,164,96" );
-
- ChairCover1 = cmesh( ChairCoverMain, ROW, 14 );
- ChairCover1a = ChairCover1 * trans( vector( -0.018, 0.0, 0.06 ) );
- ChairCover1b = ChairCover1 * scale( vector( 0.0, 0.83, 0.0 ) ) *
- trans( vector( -0.124, 0.0, 1.26 ) );
- ChairCoverTop = sFromCrvs( list( ChairCover1, ChairCover1a, ChairCover1b ),
- 3 );
- color( ChairCoverTop, yellow );
- attrib( ChairCoverTop, "texture", "wood" );
- attrib( ChairCoverTop, "rgb", "244,164,96" );
-
- ChairCover2 = cmesh( ChairCoverMain, ROW, 0 );
- ChairCover2a = ChairCover2 * trans( vector( 0.06, 0.0, -0.02 ) );
- ChairCover2b = ChairCover2 * scale( vector( 0.0, 0.83, 0.0 ) ) *
- trans( vector( 0.66, 0.0, 0.48 ) );
- ChairCoverBot = sFromCrvs( list( ChairCover2, ChairCover2a, ChairCover2b ),
- 3 );
- color( ChairCoverBot, yellow );
- attrib( ChairCoverBot, "texture", "wood" );
- attrib( ChairCoverBot, "rgb", "244,164,96" );
-
- Chair = list( ChairCoverMain, ChairCoverBot, ChairCoverTop );
-
- #
- # Carousel
- #
- CarouselTube = sweepSrf( circle( vector( 0, 0, 0 ), 0.01 ),
- cbspline( 3,
- list( ctlpt( E3, 1.0, 0.0, 0.2 ),
- ctlpt( E3, 1.0, 0.0, 0.02 ),
- ctlpt( E3, 1.0, 0.0, 0.0 ),
- ctlpt( E3, 0.98, 0.0, 0.0 ),
- ctlpt( E3, 0.5, 0.0, 0.0 ),
- ctlpt( E3, 0.0, 0.0, 0.2 ),
- ctlpt( E3, -0.5, 0.0, 0.0),
- ctlpt( E3, -0.98, 0.0, 0.0 ),
- ctlpt( E3, -1.0, 0.0, 0.0 ),
- ctlpt( E3, -1.0, 0.0, 0.02 ),
- ctlpt( E3, -1.0, 0.0, 0.2 ) ),
- list( KV_OPEN ) ),
- off );
- color( CarouselTube, red );
- attrib( CarouselTube, "reflect", 0.9 );
-
- CarouselRod1 = list( CarouselTube,
- ChairBase * scale( vector( 0.35, 0.35, 0.35 ) )
- * trans( vector( -0.93, 0.0, 0.03 ) ),
- ChairBase * roty( 90 )
- * scale( vector( 0.35, 0.35, 0.35 ) )
- * trans( vector( -0.98, 0.0, 0.25 ) ),
- ChairBase * scale( vector( 0.35, 0.35, 0.35 ) )
- * trans( vector( -0.93, 0.0, 0.03 ) )
- * rotz( 180 ),
- ChairBase * roty( 90 )
- * scale( vector( 0.35, 0.35, 0.35 ) )
- * trans( vector( -0.98, 0.0, 0.25 ) )
- * rotz( 180 ) );
- CarouselRod2 = CarouselRod1 * rotz( 45 );
- CarouselRod3 = CarouselRod1 * rotz( 90 );
- CarouselRod4 = CarouselRod1 * rotz( 135 );
-
- CarouselRods = list( CarouselRod1, CarouselRod2, CarouselRod3, CarouselRod4 );
-
- CarouselBase = surfRev( cbspline( 3,
- list( ctlpt( E3, 0.001, 0.0, 0.5 ),
- ctlpt( E3, 0.03, 0.0, 0.5 ),
- ctlpt( E3, 0.03, 0.0, 0.35 ),
- ctlpt( E3, 0.06, 0.0, 0.2 ),
- ctlpt( E3, 0.07, 0.0, 0.06 ),
- ctlpt( E3, 0.13, 0.0, 0.015 ),
- ctlpt( E3, 0.13, 0.0, 0.0 ) ),
- list( KV_OPEN ) ) );
- color( CarouselBase, green );
- attrib( CarouselBase, "reflect", 0.9 );
-
- Carousel = list( CarouselBase,
- CarouselRods * trans( vector ( 0.0, 0.0, 0.3 ) ) );
-
- #
- # A swing
- #
- SwingSideRod = sweepSrf( circle( vector( 0, 0, 0 ), 0.01 ),
- cbspline( 3,
- list( ctlpt( E3, 0.2, 0.0, -0.05 ),
- ctlpt( E3, 0.1, 0.0, 0.95 ),
- ctlpt( E3, 0.05, 0.0, 1.0 ),
- ctlpt( E3, -0.05, 0.0, 1.0 ),
- ctlpt( E3, -0.1, 0.0, 0.95 ),
- ctlpt( E3, -0.2, 0.0, -0.05 ) ),
- list( KV_OPEN ) ),
- off );
- SwingFrame = list( SwingSideRod * trans( vector( 0.0, -1.0, 0.0 ) ),
- SwingSideRod * trans( vector( 0.0, 1.0, 0.0 ) ),
- extrude( circle( vector( 0, 0, 0 ), 0.01 ),
- vector( 0.0, 0.0, 2.0 ) ) *
- rotx( -90 ) *
- trans( vector( 0.0, -1.0, 1.0 ) ) );
- color( SwingFrame, red );
- attrib( SwingFrame, "reflect", 0.5 );
-
- SwingChairRods = list( extrude( circle( vector( 0, 0, 0 ), 0.02 ),
- vector( 0.0, 0.0, 0.03 ) ) *
- rotx( -90 ) *
- trans( vector( 0.0, -0.015, 1.0 ) ),
- extrude( circle( vector( 0, 0, 0.2 ), 0.01 ),
- vector( 0.0, 0.0, 0.8 ) ),
- extrude( circle( vector( 0, 0, 0.2 ), 0.007 ),
- vector( 0.0, 0.0, -0.07 ) ) *
- roty( 90 ) *
- trans( vector( -0.2, 0.0, 0.27 ) ) );
- SwingChair1Rods = list( SwingChairRods * trans( vector( 0.0, -0.07, 0.0 ) ),
- SwingChairRods * trans( vector( 0.0, 0.07, 0.0 ) ) );
- color( SwingChair1Rods, green );
- attrib( SwingChair1Rods, "reflect", 0.9 );
- SwingChair1 = list( SwingChair1Rods,
- Chair * scale( vector( 0.25, 0.28, 0.25 ) )
- * trans( vector( -0.07, 0.0, 0.05 ) ) );
-
- SwingChair2Rods = list( SwingChairRods * trans( vector( 0.0, 0.53, 0.0 ) ),
- SwingChairRods * trans( vector( 0.0, 0.67, 0.0 ) ) );
- color( SwingChair2Rods, yellow );
- attrib( SwingChair2Rods, "reflect", 0.9 );
- SwingChair2 = list( SwingChair2Rods,
- Chair * scale( vector( 0.25, 0.28, 0.25 ) )
- * trans( vector( -0.07, 0.6, 0.05 ) ) );
-
- SwingChair3Rods = list( SwingChairRods * trans( vector( 0.0, -0.53, 0.0 ) ),
- SwingChairRods * trans( vector( 0.0, -0.67, 0.0 ) ) );
- color( SwingChair3Rods, cyan );
- attrib( SwingChair3Rods, "reflect", 0.9 );
- SwingChair3 = list( SwingChair3Rods,
- Chair * scale( vector( 0.25, 0.28, 0.25 ) )
- * trans( vector( -0.07, -0.6, 0.05 ) ) );
-
- Swing = list( SwingFrame, SwingChair1, SwingChair2, SwingChair3 );
-
- #
- # A straight slide.
- #
- SlideCross = arc( vector( 0.28, 0.06, 0.0 ),
- vector( 0.28, 0.04, 0.0 ),
- vector( 0.26, 0.04, 0.0 ) ) +
- arc( vector( 0.26, -0.02, 0.0 ),
- vector( 0.24, -0.02, 0.0 ),
- vector( 0.24, -0.04, 0.0 ) ) +
- arc( vector( -0.24, -0.04, 0.0 ),
- vector( -0.24, -0.02, 0.0 ),
- vector( -0.26, -0.02, 0.0 ) ) +
- arc( vector( -0.26, 0.04, 0.0 ),
- vector( -0.28, 0.04, 0.0 ),
- vector( -0.28, 0.06, 0.0 ) ) +
- arc( vector( -0.28, 0.06, 0.0 ),
- vector( -0.28, 0.04, 0.0 ),
- vector( -0.3, 0.04, 0.0 ) ) +
- arc( vector( -0.3, -0.04, 0.0 ),
- vector( -0.28, -0.04, 0.0 ),
- vector( -0.28, -0.06, 0.0 ) ) +
- arc( vector( 0.28, -0.06, 0.0 ),
- vector( 0.28, -0.04, 0.0 ),
- vector( 0.3, -0.04, 0.0 ) ) +
- arc( vector( 0.3, 0.04, 0.0 ),
- vector( 0.28, 0.04, 0.0 ),
- vector( 0.28, 0.06, 0.0 ) );
-
- SlideSlopeCrv = cbspline( 3,
- list( ctlpt( E3, -0.6, 0.0, 0.1 ),
- ctlpt( E3, -0.6, 0.0, 0.2 ),
- ctlpt( E3, -0.5, 0.0, 0.2 ),
- ctlpt( E3, -0.2, 0.0, 0.2 ),
- ctlpt( E3, 0.0, 0.0, 0.3 ),
- ctlpt( E3, 1.0, 0.0, 0.9 ),
- ctlpt( E3, 1.05, 0.0, 0.9 ),
- ctlpt( E3, 1.3, 0.0, 0.9 ) ),
- list ( KV_OPEN ) );
- SlideSlope = sweepSrf( SlideCross * rotz( 90 )
- * scale( vector( 0.4, 0.4, 0.4 ) ),
- SlideSlopeCrv, off );
- color( SlideSlope, yellow );
- attrib( SlideSlope, "resolution", 2.0 );
-
- SlideSlopeSupport = list( extrude( circle( vector( 0, 0, 0.0 ), 0.007 ),
- vector( 0.0, 0.0, 0.111 ) ) *
- trans( vector( -0.615, 0.112, -0.01 ) ),
- extrude( circle( vector( 0, 0, 0.0 ), 0.007 ),
- vector( 0.0, 0.0, 0.111 ) ) *
- trans( vector( -0.615, -0.112, -0.01 ) ) );
- color( SlideSlopeSupport, white );
- attrib( SlideSlopeSupport, "reflect", 0.99 );
-
- SlideSideSupport =
- list( sweepSrf( circle( vector( 0, 0, 0 ), 0.015 ),
- cbspline( 3,
- list( ctlpt( E3, 1.3, 0.0, 0.0 ),
- ctlpt( E3, 1.3, 0.0, 1.0 ),
- ctlpt( E3, 1.3, 0.0, 1.2 ),
- ctlpt( E3, 1.2, 0.0, 1.3 ),
- ctlpt( E3, 1.1, 0.0, 1.3 ),
- ctlpt( E3, 1.01, 0.0, 1.2 ),
- ctlpt( E3, 1.01, 0.0, 0.9 ) ),
- list( KV_OPEN ) ),
- off ),
- sweepSrf( circle( vector( 0, 0, 0 ), 0.01 ),
- cbspline( 3,
- list( ctlpt( E3, 2.1, 0.0, 0.0 ),
- ctlpt( E3, 2.1, 0.0, 0.35 ),
- ctlpt( E3, 2.05, 0.0, 0.4 ),
- ctlpt( E3, 1.29, 0.0, 1.18 ) ),
- list( KV_OPEN ) ),
- off ) );
- color( SlideSideSupport, white );
- attrib( SlideSideSupport, "reflect", 0.99 );
-
- SlideStairs = extrude( ctlpt( E3, 1.3, -0.12, 0.9 ) +
- ctlpt( E3, 1.3, -0.12, 0.8 ) +
- ctlpt( E3, 1.4, -0.12, 0.8 ) +
- ctlpt( E3, 1.4, -0.12, 0.7 ) +
- ctlpt( E3, 1.5, -0.12, 0.7 ) +
- ctlpt( E3, 1.5, -0.12, 0.6 ) +
- ctlpt( E3, 1.6, -0.12, 0.6 ) +
- ctlpt( E3, 1.6, -0.12, 0.5 ) +
- ctlpt( E3, 1.7, -0.12, 0.5 ) +
- ctlpt( E3, 1.7, -0.12, 0.4 ) +
- ctlpt( E3, 1.8, -0.12, 0.4 ) +
- ctlpt( E3, 1.8, -0.12, 0.3 ) +
- ctlpt( E3, 1.9, -0.12, 0.3 ) +
- ctlpt( E3, 1.9, -0.12, 0.2 ) +
- ctlpt( E3, 2.0, -0.12, 0.2 ) +
- ctlpt( E3, 2.0, -0.12, 0.1 ) +
- ctlpt( E3, 2.1, -0.12, 0.1 ) +
- ctlpt( E3, 2.1, -0.12, 0.0 ),
- vector( 0.0, 0.24, 0.0 ) );
-
- Slide = list( SlideSlope,
- SlideStairs,
- SlideSlopeSupport,
- SlideSideSupport * trans( vector( 0.0, 0.12, 0.0 ) ),
- SlideSideSupport * trans( vector( 0.0, -0.12, 0.0 ) ) );
-
- #
- # Sand box for the slide.
- #
- SandBoxBoundary = cbspline( 3,
- list( ctlpt( E3, 0.5, 0.0, 0.03 ),
- ctlpt( E3, 0.5, 0.7, 0.03 ),
- ctlpt( E3, -0.5, 0.7, 0.03 ),
- ctlpt( E3, -1.5, 0.7, 0.03 ),
- ctlpt( E3, -1.9, 0.0, 0.03 ),
- ctlpt( E3, -1.5, -0.9, 0.03 ),
- ctlpt( E3, -1.0, -0.7, 0.03 ),
- ctlpt( E3, -0.5, -0.4, 0.03 ),
- ctlpt( E3, 0.5, -0.6, 0.03 ),
- ctlpt( E3, 0.5, 0.0, 0.03 ) ),
- list( KV_OPEN ) );
- SandBoxWall = sweepSrf( ( ctlpt( E3, -0.03, 0.0, -0.05 ) +
- ctlpt( E3, -0.03, 0.0, 0.05) +
- ctlpt( E3, 0.1, 0.0, 0.05 ) +
- ctlpt( E3, 0.1, 0.0, -0.05 ) +
- ctlpt( E3, -0.03, 0.0, -0.05 ) ) * rotx( 90 ),
- SandBoxBoundary,
- vector( 0, 0, 1 ) );
- color( SandBoxWall, red );
- attrib( SandBoxWall, "rgb", "244,50,50" );
- attrib( SandBoxWall, "reflect", 0.1 );
- attrib( SandBoxWall, "resolution", 4.0 );
-
- SandBoxSand = ruledSrf( cregion( SandBoxBoundary, 0.0, 3.5 ),
- -cregion( SandBoxBoundary, 3.5, 8.0 ) );
- color( SandBoxSand, white );
- attrib( SandBoxSand, "rgb", "255,255,150" );
-
- SandBox = list( SandBoxSand, SandBoxWall );
-
- #
- # Rounded Slide.
- #
- RSlideHelix = cbspline( 4,
- list( ctlpt( E3, 0.0, 1.0, 0.0 ),
- ctlpt( E3, 0.267697, 1.0, 0.0 ),
- ctlpt( E3, 0.788770, 0.778080, 0.125925 ),
- ctlpt( E3, 1.10908, -0.011628, 0.251853 ),
- ctlpt( E3, 0.778636, -0.789588, 0.375925 ),
- ctlpt( E3, 0.0, -1.10356, 0.5 ),
- ctlpt( E3, -0.778635, -0.789590, 0.624075 ),
- ctlpt( E3, -1.10908, -0.011628, 0.748147 ),
- ctlpt( E3, -0.788770, 0.778077, 0.874075 ),
- ctlpt( E3, -0.267696, 1.0, 0.957408 ),
- ctlpt( E3, 0.0, 1.0, 1.000000 ) ),
- list( 0, 0, 0, 0, 0.812947, 1.59055, 2.40349, 3.18109,
- 3.95869, 4.77164, 5.54924,
- 6.36219, 6.36219, 6.36219, 6.36219 ) );
- RSlideHelix2 = ( RSlideHelix + RSlideHelix * trans( vector( 0.0, 0.0, 1.0 ) ) )
- * scale( vector( 0.4, 0.4, 0.5 ) );
-
- RSlideCross = cbspline( 3,
- list( ctlpt( E2, 0.0, -0.5 ),
- ctlpt( E2, -0.1, -0.5 ),
- ctlpt( E2, -0.5, -0.3 ),
- ctlpt( E2, -0.5, 0.0 ),
- ctlpt( E2, -0.5, 0.05 ),
- ctlpt( E2, -0.45, 0.05 ),
- ctlpt( E2, -0.45, -0.25 ),
- ctlpt( E2, 0.0, -0.45 ),
- ctlpt( E2, 0.45, -0.25 ),
- ctlpt( E2, 0.45, 0.05 ),
- ctlpt( E2, 0.5, 0.05 ),
- ctlpt( E2, 0.5, 0.0 ),
- ctlpt( E2, 0.5, -0.3 ),
- ctlpt( E2, 0.1, -0.5 ),
- ctlpt( E2, 0.0, -0.5 ) ),
- list( KV_OPEN ) );
- RSlideSlopeSrf = sweepSrf( coerce( RSlideCross, E3 ) * rotz( -90 ) *
- scale( vector( 0.7, 0.7, 0.7 ) ),
- RSlideHelix2,
- vector( 0, 0, 1 ) );
- attrib( RSlideSlopeSrf, "resolution", 2.0 );
- RSlideSlopeEndCrv = cSurface( RSlideSlopeSrf, ROW, 12.7243 );
- RSlideSlopeEnd = list( ruledSrf( cRegion( RSlideSlopeEndCrv, 0.0, 3.25 ),
- -cRegion( RSlideSlopeEndCrv, 3.25, 6.5 ) ),
- ruledSrf( cRegion( RSlideSlopeEndCrv, 6.5, 9.75 ),
- -cRegion( RSlideSlopeEndCrv, 9.75, 13 ) ) );
- RSlideSlope = list( RSlideSlopeEnd, RSlideSlopeSrf );
- color( RSlideSlope, yellow );
- attrib( RSlideSlope, "reflect", 0.5 );
- attrib( RSlideSlope, "rgb", "255,255,55" );
-
- RSlideCenter = surfRev( cbspline( 3,
- list( ctlpt( E3, 0.1, 0.0, 0.0 ),
- ctlpt( E3, 0.1, 0.0, 1.1 ),
- ctlpt( E3, 0.11, 0.0, 1.1 ),
- ctlpt( E3, 0.11, 0.0, 1.11 ),
- ctlpt( E3, 0.11, 0.0, 1.11 ),
- ctlpt( E3, 0.2, 0.0, 1.11 ),
- ctlpt( E3, 0.2, 0.0, 1.4 ),
- ctlpt( E3, 0.001, 0.0, 1.4 ) ),
- list( KV_OPEN ) ) );
- color( RSlideCenter, green );
- attrib( RSlideCenter, "rgb", "55,255,55" );
-
- RSlideLadderSideCrv = cbspline( 3,
- list( ctlpt( E3, 0.0, 0.0, 0.0 ),
- ctlpt( E3, 0.0, 0.0, 0.8 ),
- ctlpt( E3, 0.0, 0.0, 0.9 ),
- ctlpt( E3, 0.1, 0.0, 0.9 ),
- ctlpt( E3, 0.9, 0.0, 0.9 ) ),
- list( KV_OPEN ) ) *
- rotz( 180 ) *
- trans( vector( 0.85, 0.1, 0.0 ) );
- RSlideLadderSide = sweepSrf( circle( vector( 0.0, 0.0, 0.0 ), 0.015 ),
- RSlideLadderSideCrv,
- off );
- RSlideLadderStep = extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.01 ),
- vector( 0.0, 0.0, 0.61 ) ) * rotx( 90 );
- RSlideLadder = list( RSlideLadderSide,
- RSlideLadderSide * trans( vector( 0.0, 0.61, 0.0 ) ),
- RSlideLadderStep * trans( vector( 0.85, 0.71, 0.2 ) ),
- RSlideLadderStep * trans( vector( 0.85, 0.71, 0.4 ) ),
- RSlideLadderStep * trans( vector( 0.85, 0.71, 0.6 ) ),
- RSlideLadderStep * trans( vector( 0.85, 0.71, 0.6 ) ),
- RSlideLadderStep * trans( vector( 0.85, 0.71, 0.8 ) ),
- RSlideLadderStep * trans( vector( 0.75, 0.71, 0.9 ) ),
- RSlideLadderStep * trans( vector( 0.55, 0.71, 0.9 ) ),
- RSlideLadderStep * trans( vector( 0.35, 0.71, 0.9 ) ),
- RSlideLadderStep * trans( vector( 0.15, 0.71, 0.9 ) ) );
- color( RSlideLadder, red );
- attrib( RSlideLadder, "rgb", "255,55,55" );
-
- RSlide = list( RSlideSlope, RSlideCenter, RSlideLadder );
-
- #
- # Swing for two.
- #
-
- TSwingSupport1 = list( extrude( circle( vector( 0.0, 0.0, -0.02 ), 0.015 ),
- vector( 0.0, 0.0, 0.22 ) ) *
- rotx( 20 ) *
- trans( vector( -0.7, 0.07, 0.0 ) ),
- extrude( circle( vector( 0.0, 0.0, -0.02 ), 0.015 ),
- vector( 0.0, 0.0, 0.22 ) ) *
- rotx( -20 ) *
- trans( vector( -0.7, -0.07, 0.0 ) ) );
- TSwingSupport2 = TSwingSupport1 * trans( vector( 1.4, 0.0, 0.0 ) );
- TSwingSupport = list( TSwingSupport1, TSwingSupport2,
- extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.015 ),
- vector( 0.0, 0.0, 1.4 ) ) *
- roty( 90 ) *
- trans( vector( -0.7, 0.0, 0.2 ) ) );
- color( TSwingSupport, blue );
- attrib( TSwingSupport, "rgb", "50,50,255" );
-
- TSwingChairSupport = extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.015 ),
- vector( 0.0, 0.0, 1.4 ) ) *
- rotx( 90 ) *
- trans( vector( 0.0, 0.7, 0.215 ) );
- color( TSwingChairSupport, green );
- attrib( TSwingChairSupport, "rgb", "50,255,50" );
-
- TSwingChair = list( TSwingChairSupport,
- ChairBase *
- scale( vector( 0.3, 0.3, 0.3 ) ) *
- trans( vector( -0.065, 0.7, 0.235 ) ),
- ChairBase *
- scale( vector( 0.3, 0.3, 0.3 ) ) *
- trans( vector( -0.065, 0.7, 0.235 ) ) *
- rotz( 180 ) );
-
- TSwingChair1 = TSwingChair *
- trans( vector( 0.0, 0.0, -0.215 ) ) *
- rotx( 16 ) *
- trans( vector( 0.4, 0.0, 0.215 ) );
- TSwingChair2 = TSwingChair *
- trans( vector( 0.0, 0.0, -0.215 ) ) *
- rotx( -16 ) *
- trans( vector( -0.4, 0.0, 0.215 ) );
-
- TSwing = list( TSwingSupport, TSwingChair1, TSwingChair2 );
-
- #
- # Network
- #
-
- NetworkX1 = list( extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.01 ),
- vector( 0.0, 0.0, 1.0 ) ) *
- rotx( 90 ) *
- trans( vector( 0.0, 0.0, 0.0 ) ),
- extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.01 ),
- vector( 0.0, 0.0, 1.0 ) ) *
- rotx( 90 ) *
- trans( vector( 0.0, 0.0, 0.25 ) ),
- extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.01 ),
- vector( 0.0, 0.0, 1.0 ) ) *
- rotx( 90 ) *
- trans( vector( 0.0, 0.0, 0.5 ) ),
- extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.01 ),
- vector( 0.0, 0.0, 1.0 ) ) *
- rotx( 90 ) *
- trans( vector( 0.0, 0.0, 0.75 ) ),
- extrude( circle( vector( 0.0, 0.0, 0.0 ), 0.01 ),
- vector( 0.0, 0.0, 1.0 ) ) *
- rotx( 90 ) *
- trans( vector( 0.0, 0.0, 1.0 ) ) );
- NetworkX = list( NetWorkX1,
- NetWorkX1 * trans( vector( 0.25, 0.0, 0.0 ) ),
- NetWorkX1 * trans( vector( 0.5, 0.0, 0.0 ) ),
- NetWorkX1 * trans( vector( 0.75, 0.0, 0.0 ) ),
- NetWorkX1 * trans( vector( 1.0, 0.0, 0.0 ) ) );
- color( NetworkX, green );
- attrib( NetworkX, "rgb", "50,255,50" );
-
- NetworkY = NetworkX * rotz( 90 ) * trans( vector( 0.0, -1.0, 0.0 ) );
- color( NetworkY, red );
- attrib( NetworkY, "rgb", "255,50,50" );
-
- NetworkZ = NetworkX * rotx( 90 ) * trans( vector( 0.0, 0.0, 1.0 ) );
- color( NetworkZ, yellow );
- attrib( NetworkZ, "rgb", "255,255,50" );
-
- Network = list( NetworkX, NetworkY, NetworkZ );
-
- #
- # Place all the toys in the playground.
- #
- PlayGround = ruledSrf( ctlpt( E2, -1.0, -1.0 ) + ctlpt( E2, -1.0, 1.0 ),
- ctlpt( E2, 1.0, -1.0 ) + ctlpt( E2, 1.0, 1.0 ) ) *
- scale( vector( 15.0, 15.0, 15.0 ) );
- color( PlayGround, white );
- attrib( PlayGround, "rgb", "25,25,25" );
- attrib( PlayGround, "reflect", 0.25 );
-
- PlayCarousel = Carousel * trans( vector( -1, -2, 0 ) );
- PlaySwing = Swing * trans( vector( 1, -2, 0 ) );
- PlaySlideSand = list( Slide, SandBox ) * trans( vector( 1.3, 0.7, 0 ) );
- PlaySlide2 = Slide * trans( vector( 0.5, -4.5, 0 ) );
- PlayRSlide = RSlide * trans( vector( -2.0, 0.5, 0 ) );
- PlayTSwing1 = TSwing * trans( vector( 3, -1, 0 ) );
- PlayTSwing2 = TSwing * trans( vector( 3, -3, 0 ) );
- PlayNetwork = Network * trans( vector( -4, -1.5, 0 ) );
-
- All = list( PlayGround, PlayCarousel, PlaySwing, PlaySlideSand, PlaySlide2,
- PlayRSlide, PlayTSwing1, PlayTSwing2, PlayNetwork );
- save( "playgrnd", All );
-
- #
- # This is a very complex model. Reduce display accuracy.
- #
- viewobj(axes);
- viewstate("CrsrAprx");
- viewstate("CrsrAprx");
- viewstate("CrsrAprx");
- viewstate("CrsrAprx");
- viewstate("LessIso");
- viewstate("LessIso");
- viewstate("LessIso");
-
- viewobj( All );
-